package com.liam.forum.common;

/**
 * @Author: LiamLMK
 * @CreateTime: 2024-09-19
 * @Description: 需要被返回的系统状态码
 * @Version: 1.0
 */

public enum ResultCode {
    SUCCESS(0, "成功"),
    FAILED(1000, "操作失败"),
    FAILED_UNAUTHORIZED(1001, "未授权"),
    FAILED_PARAMS_VALIDATE(1002, "参数校验失败"),
    FAILED_FORBIDDEN(1003, "禁止访问"),
    FAILED_CREATE(1004, "新增失败"),
    FAILED_NOT_EXISTS(1005, "资源不存在"),

    // 关于用户的错误描述
    FAILED_USER_EXISTS(1101, "用户已存在"),
    FAILED_USER_NOT_EXISTS(1102, "用户不存在"),
    FAILED_LOGIN(1103, "⽤⼾名或密码错误"),
    FAILED_USER_BANNED(1104, "您已被禁言, 请联系管理员, 并重新登录."),
    FAILED_TWO_PWD_NOT_SAME(1105, "两次输⼊的密码不⼀致"),

    // 关于板块的错误描述
    FAILED_BOARD_ARTICLE_COUNT(1201, "更新帖子数量失败"),
    FAILED_BOARD_BANNED(1202, "版块状态异常"),
    FAILED_BOARD_NOT_EXISTS(1203, "版块不存在"),

    // 关于帖子的错误描述
    FAILED_ARTICLE_NOT_EXISTS(1301, "帖子不存在"),
    FAILED_ARTICLE_BANNED(1302, "帖子状态异常"),

    // 关于站内信的错误描述
    FAILED_MESSAGE_NOT_EXISTS(1301, "站内信不存在"),

    ERROR_SERVICES(2000, "服务器内部错误"),
    ERROR_IS_NULL(2001, "IS NULL."),
    ;
    // 状态码
    long code;
    // 状态描述
    String message;

    // 构造⽅法
    ResultCode(long code, String message) {
        this.code = code;
        this.message = message;
    }

    public long getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    @Override
    public String toString() {
        return "code = " + code + ", message = " + message + ". ";
    }
}
